In a network or bus system using an attempt and defer access contention protocol (hereinbelow referred to as AADACP), data is carried on the bus in a unidirectional format. Stations (or terminals) are connected to the bus with transmitters upstream and the receivers of each of the stations downstream of the most downstream transmitter. The bus therefore usually is in a U or S form. Each station includes a sense (S) and a transmit (T) lead connected to the bus, with the S lead upstream of the T lead. For energy passing downstream on the bus, a detector connected to the S lead senses the energy or the termination of energy and causes the station transmitter either to cease transmitting or to attach data to the end of a data train passing down the bus. Several different types of such systems are described in U.S. Pat. No. 4,498,168 to C. W. Tseng, issued Feb. 5, 1985, to which the reader is referred.
In a bus system using AADACP, a station having a packet to transmit waits until there is no activity on the bus at a point just upstream of the point at which the transmitter of the station is connected to the bus. For some unidirectional bus systems that use AADACP, such as ExpressNet and D-Net, transmission opportunities occur only just at the time that other upstream activity stops. Other unidirectional bus systems, such as the MAP protocol of the C-Net system, also permit a station to transmit at other times when there is no upstream activity. ExpressNet is described by Fouad A. Tobagi, Flaminion Borgonovo, and Luigi Fratta in "Expressnet: A High-Performance Integrated-Services Local Area Network", IEEE Journal on Selected Areas in Communications, Vol SAC-1, Nov. 5, November 1983. D-Net is described by C. W. Tseng, and B. U. Chen, in "D-Net, A New Scheme for High Data Rate Optical Local Networks", IEEE Journal on Selected Areas in Communications, Vol. SAC-1, April 1983. The MAP protocol of the C-Net system is described by Marco Ajmone Marsan, and Guido Albertengo in "Integrated Voice and Data Networks", Comput. Communications, Vol. 5, No. 3 (June 1982), pp. 119-127.
When the bus exhibits no activity, a station commences to transmit a preamble on the downstream portion of the bus. The preamble typically serves two purposes in the prior art: 1) to indicate to downstream stations that a data packet will follow immediately, and 2) to provide an opportunity for downstream receivers to train their local clocks to a frequency appropriate for the reception of the packet. The preamble usually consists of an unmodulated carrier of which the frequency is a fixed multiple of the bit rate of the packet body.
Because of the unidirectional nature of the bus, the activity of transmitting does not prevent the transmitting station from detecting activity on the upstream portion of the bus during the transmission. When the station has completed the transmission of the packet preamble, it commences to transmit the body of the packet. If a preamble sent by an upstream station arrives at the station while it is transmitting the preamble or the body of a packet, the station stops transmitting immediately. The arriving preamble is long enough so that most of the arriving preamble is not overlapped by the stopped transmission; all of the body of the following packet is untouched by the stopped transmission. Thus most of the preamble arriving from upstream, and all of the packet body that follows it, passes the station without corruption.
The AADACP procedure is distinguished from CSMA/CD procedures in which a collision corrupts both colliding packets, and in which neither packet can defer to the other in such a way that one packet is left uncorrupted. In AADACP, one of the two colliding packets is considered to be intact. An example of a standard CSMA/CD procedure is described in the IEEE 802.3 CSMA/CD standard, 1985 entitled CARRIER SENSE MULTIPLE ACCESS WITH COLLISION DETECTION.
In a typical AADACP system, a station having data to transmit on the bus waits until the sensor connected to its S lead indicates that there are no signals arriving from the upstream portion of the bus. Once signals from upstream become absent after a preceding presence, downstream stations are permitted to transmit by appending packets to a train of packets. Then a station begins to transmit a packet preamble to the downstream portion of the bus via its T lead, while continuing to use its S lead to detect the commencement of activity upstream. The packet preamble is transmitted by the transmitting station for a period of time T.sub.p. The packet preamble may consist of, for example, an unmodulated carrier or a particular sequence of bits to facilitate synchronization of downstream receivers. When the station has completed transmission of the packet preamble it then transmits one or more packet bodies. If the S detector lead of the transmitting station detects upstream transmission activity at any time during transmission of the packet preamble or packet body, the transmitting station terminates the transmission as quickly as possible. A signal collision, however, would have occurred, corrupting the overlapped signals prior to shut-down of the transmitter.
For any conceivable transmitter, a certain minimum of time T.sub.d must elapse between the arrival of an upstream transmission at the S lead of a transmitter and the instant when a transmitter can stop emitting energy to the bus or other medium through its T lead. Similarly a minimum elapsed time is required before a station can detect the disappearance of activity at the associated S lead and the instant when it starts emitting energy to the medium. This latter time is usually taken to be equal to T.sub.d. Because there is no significant propagation delay between the S and T leads, a transmitter station waiting for the end of an upstream transmission cannot begin transmitting until an interval T.sub.d after the end of the upstream transmission passes it. This results in a minimum unused time gap of T.sub.d between packets of a packet train.
Further, a transmitter overwrites the first part of a transmission from upstream that arrives at its S lead at the instant that it begins transmitting to its T lead (creating a collision). It overwrites such an upstream transmission during the period T.sub.d before it is able to detect the transmission from upstream at its S lead and then defer to the transmission from upstream by truncating its own transmission. This means that a transmitter with traffic to send will overwrite the initial part of the packet preamble of every packet that passes, until it gets an opportunity to complete its transmission. Since an uncorrupted portion of the packet preamble is required for synchronizing the clocks of downstream receivers the time interval, T.sub.p is extended in these cases by an interval of T.sub.d in order to provide a portion of the packet preamble that is allowed to be overridden by downstream stations.
It should be noted that a transmitter station having traffic to send will sense the energy gap at the end of each packet in the train of packets just in time to start transmitting at the precise instant that the leading edge of the packet preamble of the following packet arrives at its S lead. Such a transmitter may overwrite the initial part of any packet preambles that arrive until it has its chance to complete the transmission at the end of the packet train.
In the article by F. Borgonovo, "Expressman; Exploiting Traffic Locality in Expressnet" IEEE Journal on Selected Areas in Communications, Vol. 5, No. 9, December 1987, pp. 1436-1443, it is briefly mentioned that overwriting of a preamble may be avoided by inserting a delay element between the S and T leads having a delay of T.sub.d and by delaying the start of transmission by the same amount (T.sub.d). It should be noted that this technique still leaves a gap of duration T.sub.d between packets of a packet train, but eliminates the overwriting of packet preambles in the middle of packet trains. This also does not prevent packet loss and duplication due to collisions that occur while a packet is being transmitted.
The terminology of the prior art does not distinguish clearly between two different circumstances of collision: the deferral of a downstream transmitter before it has completed transmission of a packet preamble, and deferral of a downstream transmitter after it has begun to transmit the body of the packet following the packet preamble. The term collision is used indiscriminately to refer to either of the two circumstances of deferral. It is necessary to distinguish them, thus
1. preamble collision, or P-collision, when a downstream station defers while transmitting its preamble, and to a
2. truncating collision, or T-collision, when a downstream station defers while transmitting the body of a packet.
It is not necessary for receivers to take any action with respect to P-collisions except to defer promptly, because there is no possibility that the packet whose transmission is aborted during such a collision will be successfully received and thus used.
T-collisions, on the other hand pose the following problem: A transmitter, when it truncates a packet body during a T-collision, will retransmit the packet at some subsequent time. If there is any possibility that a destination receiver received the packet body correctly, the packet may be received twice by a receiver, which may be very undesirable. If there is any possibility that the transmitter may not detect a T-collision that has corrupted a packet, the packet will be lost.